package com.penghaisoft.microwms.base.web.data.service.impl;

import com.penghaisoft.microwms.base.web.data.service.IMdWarehouseService;
import com.penghaisoft.microwms.base.web.warehouse.dao.MdWarehouseMapper;
import com.penghaisoft.microwms.common.data.model.MdWarehouse;
import com.penghaisoft.microwms.common.dto.Resp;
import com.penghaisoft.microwms.common.page.Pager;
import com.penghaisoft.microwms.common.service.BaseService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Description 仓库业务逻辑实现类
 * @author gaofeng
 * @date 2017年5月24日 下午4:52:09 
 * @version 1.0
 */
@Service("mdWarehouseService")
public class MdWarehouseServiceImpl extends BaseService implements IMdWarehouseService {
	@Resource
	private MdWarehouseMapper mdWarehouseMapper;

	/** 
	 * @Title create
	 * @Description 新增记录
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:53:16
	 * @param mdWarehouse
	 * @return
	 */
	@Override
	public Resp create(MdWarehouse mdWarehouse){
		mdWarehouseMapper.create(mdWarehouse);
		return success();
	}

	/** 
	 * @Title delete
	 * @Description 删除记录（逻辑删除）
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:53:32
	 * @param mdWarehouse
	 * @return
	 */
	@Override
	public Resp delete(MdWarehouse mdWarehouse){
		mdWarehouseMapper.delete(mdWarehouse);
		return success();
	}

	/** 
	 * @Title findListByCondition
	 * @Description 根据条件查询记录
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:53:52
	 * @param page
	 * @param rows
	 * @param condition
	 * @return
	 */
	@Override
	public Pager<MdWarehouse> findListByCondition(int page, int rows, MdWarehouse condition){
		Pager<MdWarehouse> pager = new Pager<>();
		pager.setPage(page);
		pager.setRows(rows);
		
		int i = 0;
		if(condition.getActiveFlag() !=null && !"".equals(condition.getActiveFlag())){
			i = 0;
		} else {
			i = 1;
		}
		
		
		condition.preQuery();
		
		if(i == 1){
			condition.setActiveFlag(null);
		}
		
		List<MdWarehouse> records = mdWarehouseMapper.queryList(pager,condition);
		long size = mdWarehouseMapper.queryCount(condition);
		pager.setRecords(records);
		pager.setTotalCount(size);
		return pager;
	}

	/** 
	 * @Title findById
	 * @Description 根据id查询记录
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:54:41
	 * @param id
	 * @return
	 */
	@Override
	public MdWarehouse findById(String id){
		return mdWarehouseMapper.queryById(id);
	}
	
	/** 
	 * @Title findByCode
	 * @Description 根据code查询记录
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:55:12
	 * @param mdWarehouse
	 * @return
	 */
	@Override
	public MdWarehouse findByCode(MdWarehouse mdWarehouse){
		return mdWarehouseMapper.queryByCode(mdWarehouse);
	}
	
	/** 
	 * @Title getFactoryByCode
	 * @Description 根据仓库编码查询对应的工厂号
	 * @author luoteng
	 * @date 2017年11月3日:上午10:56:34
	 * @param warehouseCode
	 * @return String
	 */
	@Override
	public String getFactoryByCode(String warehouseCode){
		String factoryCode = "";
		MdWarehouse mdWarehouse = new MdWarehouse();
		mdWarehouse.setWarehouseCode(warehouseCode);
		MdWarehouse rtOb = mdWarehouseMapper.getByCode(mdWarehouse);
		if(rtOb != null){
			factoryCode = rtOb.getFactoryCode();
		}
		return factoryCode;
	}

	/** 
	 * @Title update
	 * @Description 修改记录
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:56:01
	 * @param mdWarehouse
	 * @return
	 */
	@Override
	public Resp update(MdWarehouse mdWarehouse){
		mdWarehouseMapper.updateBySelect(mdWarehouse);
		return success();
	}

	/** 
	 * @Title queryWarehousesUnderFactory
	 * @Description 查询某个工厂下所有的仓库
	 * @author gaofeng
	 * @date 2017年5月24日:下午4:56:20
	 * @param condition
	 * @return
	 */
	@Override
	public List<MdWarehouse> queryWarehousesUnderFactory(MdWarehouse condition) {
		return mdWarehouseMapper.queryWarehousesUnderFactory(condition);
	}
	
	/** 
	 * @Title queryByAny
	 * @Description 查询所有仓库数据
	 * @author luoteng
	 * @date 2017年11月3日:上午11:25:54
	 * @return List<MdWarehouse>
	 */
	public List<MdWarehouse> queryByAny(){
		return mdWarehouseMapper.queryByAny(null);
	}
}
